to guest console driver when the output ring is
emptied. This can be used to kick transmission of
more characters without needing to poll.
Signed-off-by: Keir Fraser <keir@xensource.com>
struct ring_head *ring = (struct ring_head *)dom->page;
size_t size;
u32 oldcons;
+ int notify = 0;
while ((size = ring->prod - ring->cons) != 0) {
+ notify = 1;
+
if ((buffer->capacity - buffer->size) < size) {
buffer->capacity += (size + 1024);
buffer->data = realloc(buffer->data, buffer->capacity);
buffer->capacity = buffer->max_capacity;
}
}
+
+ if (notify)
+ xc_evtchn_send(xc, dom->local_port);
}
static bool buffer_empty(struct buffer *buffer)